//  ts 中类的基本使用：与js 最大区别需要定义参数类型，变量类型、函数返回类型

export { }  //确保与其他成员冲突，独立作用域

// 类的属性在定义中先声明，方便类型定义
class Person{
      // 定义对象属性变量可以初始化赋值
    name:string='deman'
    age:number=20
    // 参数变量需定义类型
    constructor(name:string,age:number){
        // this指向变量需在对象内静态声明，区别于js的动态赋值变量
        this.name = name
        this.age = age
    }
    // 函数变量需定义餐参数类型及返回类型
    say(data:string):void{
        // 函数内部可以调用对象内部变量
        return console.log(`This is a ${data},${this.name}${this.age}`);
    }
}

const p1 =new Person('deman',20) 
console.log(p1)   //Person { name: 'deman', age: 20 }
console.log(p1.say('typescript'));  //This is a typescript,deman20

 